﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;

namespace Amoo.Visualizar
{
    public partial class ListaComunidades : Code.Business.PageBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {

                ListarComunidades("E");
                //lblTipoComunidade.Text = "Federais";

                Amoo.Code.Data.Comunidade oComunidade = new Amoo.Code.Data.Comunidade();
                PopularComboHierarquia(ddlEstadual, oComunidade.GetAll("E"));
                oComunidade.Dispose();
            }
        }

        public void PopularComboHierarquia(DropDownList pComboBox, List<Code.Entity.Comunidade> pListaComunidade)
        {
            ListItem lstItem;

            lstItem = new ListItem("Selecione", "-1");
            pComboBox.Items.Add(lstItem);

            foreach (Code.Entity.Comunidade eComunidade in pListaComunidade)
            {
                lstItem = new ListItem(eComunidade.dsNomeComunidade, eComunidade.idComunidade.ToString());
                pComboBox.Items.Add(lstItem);
            }
            pComboBox.DataBind();
        }

        protected void ddlFederal_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (Convert.ToInt32(ddlFederal.SelectedValue) > -1)
            {
                //hdnIdComunidadePai.Value = ddlFederal.SelectedValue.ToString();

                ListarComunidades(Convert.ToInt32(ddlFederal.SelectedValue));

                Amoo.Code.Data.Comunidade oComunidade = new Amoo.Code.Data.Comunidade();
                PopularComboHierarquia(ddlEstadual, oComunidade.GetAll(Convert.ToInt32(ddlFederal.SelectedValue)));
                //lblTipoComunidade.Text = "Estaduais";
                oComunidade.Dispose();
            }
            else
            {
                ddlEstadual.Items.Clear();
                ddlMunicipal.Items.Clear();

                ListarComunidades("F");
                //lblTipoComunidade.Text = "Federais";
                //hdnIdComunidadePai.Value = "0";
            }
        }

        protected void ddlEstadual_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (Convert.ToInt32(ddlEstadual.SelectedValue) > -1)
            {
                //hdnIdComunidadePai.Value = ddlEstadual.SelectedValue.ToString();
                ListarComunidades(Convert.ToInt32(ddlEstadual.SelectedValue));

                Amoo.Code.Data.Comunidade oComunidade = new Amoo.Code.Data.Comunidade();
                PopularComboHierarquia(ddlMunicipal, oComunidade.GetAll(Convert.ToInt32(ddlEstadual.SelectedValue)));
                oComunidade.Dispose();
                //lblTipoComunidade.Text = "Municipais";
            }
            else
            {
                ddlMunicipal.Items.Clear();
                ListarComunidades("E");
                //lblTipoComunidade.Text = "Estaduais";
            }
        }

        protected void ddlMunicipal_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (Convert.ToInt32(ddlMunicipal.SelectedValue) > -1)
            {
                //hdnIdComunidadePai.Value = ddlMunicipal.SelectedValue.ToString();
                ListarComunidades(Convert.ToInt32(ddlMunicipal.SelectedValue));
                //lblTipoComunidade.Text = "Privadas, Publicas ou Pessoais";
            }
            else
            {
                ddlMunicipal.Items.Clear();
                ListarComunidades("M");
                //lblTipoComunidade.Text = "Municipais";
            }
        }

        public void ListarComunidades(string sTipoComunidade)
        {

            Amoo.Code.Data.Comunidade oComunidade = new Amoo.Code.Data.Comunidade();
            ListarComunidades(oComunidade.GetAll(sTipoComunidade));
            oComunidade.Dispose();

        }

        public void ListarComunidades(int iIdComunidadePai)
        {

            dvListaComunidades.InnerHtml = "";
            Amoo.Code.Data.Comunidade oComunidade = new Amoo.Code.Data.Comunidade();
            ListarComunidades(oComunidade.GetAll(iIdComunidadePai));
            oComunidade.Dispose();

        }

        public void ListarComunidades(Code.Entity.Usuario oUser)
        {

            dvListaComunidades.InnerHtml = "";
            Amoo.Code.Data.Comunidade oComunidade = new Amoo.Code.Data.Comunidade();
            ListarComunidades(oComunidade.GetAll(oUser));
            oComunidade.Dispose();

        }

        public void ListarComunidades(List<Amoo.Code.Entity.Comunidade> pListaComunidades)
        {
            string strHtmlListaComunidades = "";

            foreach (Amoo.Code.Entity.Comunidade eComunidade in pListaComunidades)
            {
                if (eComunidade.bolComunidadeAtiva)
                {
                    strHtmlListaComunidades += "    <table border='0' onClick=window.location.href='Comunidade.aspx?idComunidade=" + eComunidade.idComunidade.ToString() + "' class='TableComunidades' width=100% cellpadding=3 cellspacing=3>";
                    strHtmlListaComunidades += "        <col width=10px/>";
                    strHtmlListaComunidades += "        <col width=100%/>";
                    strHtmlListaComunidades += "        <tr>";
                    strHtmlListaComunidades += "            <td>&nbsp;</td>";
                    strHtmlListaComunidades += "            <td><a href='Comunidade.aspx?idComunidade=" + eComunidade.idComunidade.ToString() + "'><font color='#609f60' size='3'>" + eComunidade.dsNomeComunidade + "</font></a></td>";
                    strHtmlListaComunidades += "        </tr>";
                    strHtmlListaComunidades += "        <tr>";
                    strHtmlListaComunidades += "            <td>&nbsp;</td>";
                    strHtmlListaComunidades += "            <td><font class='text9'>Comunidade <b>" + fncDefinePerfil(eComunidade.dsPerfilComunidade) + "</b> criada em: </font><font class='text1'>" + eComunidade.dtDataCriacao.ToShortDateString() + "</font></td>";
                    strHtmlListaComunidades += "        </tr>";
                    strHtmlListaComunidades += "     </table>";
                    strHtmlListaComunidades += "    <br>";
                }

                dvListaComunidades.InnerHtml = strHtmlListaComunidades;
            }
        }

        private string fncDefinePerfil(string p)
        {
            switch (p)
            { 
                case "PRI":
                    return "privada";
                    break;
                case "PUB":
                    return "publica";
                    break;
                case "IND":
                    return "individual";
                    break;
            }

            return "";
        }

    }
}
